package com.h3c.nem.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.h3c.nem.dto.SdAllWorkerDTO;
import com.h3c.nem.dto.TbTeacherDTO;
import com.h3c.nem.dto.mapstruct.NewWorkerDTO;
import com.h3c.nem.entity.SdAllWorker;
import com.h3c.nem.entity.TbOfferWorker;
import com.h3c.nem.vo.SdAllWorkerVO;

import java.util.Date;
import java.util.List;

/**
 * Copyright (C), 2020-2020, h3c
 * FileName: ISdAllWorkerService
 *
 * @Author: l22886
 * @Date: 2022-01-19
 * Description: sd_all_worker service
 * Version: 1.0
 */
public interface ISdAllWorkerService extends IService<SdAllWorker> {

    /**
     * @title: selectFuzzyByDto
     * @description: 模糊查询操作
     * @params: [ dto ]
     * @return: java.util.List
     * @createTime: 2022-01-19
     * @version: 1.0
     * @author: l22886
     */
    public List<SdAllWorkerDTO> selectFuzzyByDto(SdAllWorkerDTO dto);

    /**
     * @title: selectByDto
     * @description: 精确查询操作
     * @params: [ dto ]
     * @return: java.util.List
     * @createTime: 2022-01-19
     * @version: 1.0
     * @author: l22886
     */
    public List<SdAllWorkerDTO> selectByDto(SdAllWorkerDTO dto);

    /**
     * @title: insertDto
     * @description: 插入操作
     * @params: [ dto ]
     * @return: Integer
     * @createTime: 2022-01-19
     * @version: 1.0
     * @author: l22886
     */
    public Integer insertDto(SdAllWorkerDTO dto);

    /**
     * @title: updateDto
     * @description: 修改操作
     * @params: [ dto ]
     * @return: Integer
     * @createTime: 2022-01-19
     * @version: 1.0
     * @author: l22886
     */
    public Integer updateDto(SdAllWorkerDTO dto);

    /**
     * @title: deleteDto
     * @description: 删除操作
     * @params: [ dto ]
     * @return: Integer
     * @createTime: 2022-01-19
     * @version: 1.0
     * @author: l22886
     */
    public Integer deleteDto(SdAllWorkerDTO dto);

    List<SdAllWorkerVO> searchWorker(String keyword);

    /**
     * 根据时间获取新员工的信息
     *
     * @param date
     * @return java.util.List<com.h3c.nem.entity.SdAllWorker>
     * @author z22968
     * @date 2022-06-08 11:46
     */
    List<NewWorkerDTO> getNewWorker(Date date);

    void updateAllWorkerOfOfferWorker(TbOfferWorker offerWorker, String[] codes, String emailAddress, String samAccount);

    public List<TbTeacherDTO> checkTeacherAbility(List<String> workerIdList);
    }
